package org.wdcode.common.exception;

/**
 * 自定义运行时异常
 * @author WD
 * @since JDK6
 * @version 1.0 2009-11-26
 */
public class CustomRuntimeException extends RuntimeException {
	private static final long	serialVersionUID	= 6189985106003899876L;
	// 错误码
	private int					errorCode			= -1;
	// 错误信息
	private String				info;
	// 是否是系统异常 true 是 false 否
	private boolean				sysException		= false;

	/**
	 * 构造方法
	 */
	public CustomRuntimeException() {
		super();
	}

	/**
	 * 构造方法
	 * @param info 错误信息
	 */
	public CustomRuntimeException(String info) {
		super(info);
		// 设置错误信息
		this.info = info;
	}

	/**
	 * 构造方法
	 * @param e 异常类
	 */
	public CustomRuntimeException(Exception e) {
		super(e);
		// 是系统异常
		this.sysException = true;
	}

	/**
	 * 构造方法
	 * @param info 错误信息
	 * @param e 异常
	 */
	public CustomRuntimeException(String info, Exception e) {
		super(info, e);
		// 设置错误信息
		this.info = info;
		// 是系统异常
		this.sysException = true;
	}

	/**
	 * 构造方法
	 * @param errorCode 错误码
	 */
	public CustomRuntimeException(int errorCode) {
		// 设置错误码
		this.errorCode = errorCode;
	}

	/**
	 * 构造方法
	 * @param errorCode 错误码
	 * @param info 错误信息
	 */
	public CustomRuntimeException(int errorCode, String info) {
		this(info);
		// 设置错误码
		this.errorCode = errorCode;
		// 设置错误信息
		this.info = info;
	}

	/**
	 * 构造方法
	 * @param errorCode 错误码
	 * @param info 错误信息
	 * @param e 异常
	 */
	public CustomRuntimeException(int errorCode, String info, Exception e) {
		this(info, e);
		// 设置错误码
		this.errorCode = errorCode;
		// 设置错误信息
		this.info = info;
		// 是系统异常
		this.sysException = true;
	}

	/**
	 * 构造方法
	 * @param errorCode 错误码
	 * @param e 异常
	 */
	public CustomRuntimeException(int errorCode, Exception e) {
		super(e);
		// 设置错误码
		this.errorCode = errorCode;
		// 是系统异常
		this.sysException = true;
	}

	/**
	 * 判断是否是系统异常
	 * @return true是系统异常，false是自定义异常
	 */
	public final boolean isSysException() {
		return sysException;
	}

	/**
	 * 获得错误码
	 * @return 错误码 默认是 -1
	 */
	public final int getErrorCode() {
		return errorCode;
	}

	/**
	 * 获得错误信息
	 * @return 错误信息
	 */
	public final String getInfo() {
		return info;
	}
}
